/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"05FA28E5-E2B3-46EE-90FD-7BAA83481FB6",variableType:8}
 */
var fTotalReal = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"902AECD7-B131-43E0-9C01-35F4D785A3C0",variableType:8}
 */
var fTotal = null;


/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} [firstShow] form is shown first time after load
 * @param {JSEvent} [event] the event that triggered the action
 * @param {Number} locale
 *
 * @properties={typeid:24,uuid:"93B501CC-82D0-49A7-8009-60F5DD044B59"}
 */
function onShow(firstShow, event, locale) {
	elements.tab_precios.removeAllTabs()
	if (locale == 1)
	{
		elements.tab_precios.addTab('reserva_3_precios')
	}
	else
	{
		var $precios = buscarPrecioPorDia()
		dibujarPrecios($precios)
	}
}

/**
 * @properties={typeid:24,uuid:"072A9708-680E-4A16-83C3-20F3CD2EA450"}
 */
function buscarPrecioPorDia()
{
	fTotal = 0
	fTotalReal = 0
	var $moneda = gtarifa_to_tarifas.moneda_id
	
	globals.gFecha1 = new Date(globals.gFechaDesde.getFullYear(), globals.gFechaDesde.getMonth(),globals.gFechaDesde.getDate(),0,0,0,0)
	var $precios = databaseManager.createEmptyDataSet(0,['fecha','precio','descuento','precio_real'])
	var $descuento = 0
	var $promos = globals.buscarPromosMinimo(globals.gFechaDesde, globals.gFechaHasta, globals.gTarifasCliente, tipo_habitacion_id)
	if ($promos.getMaxRowIndex() > 0)
	{
		$descuento = $promos.getValue(1,2)
	}
	while (globals.gFecha1 < globals.gFechaHasta)
	{
		globals.gTemporadaId = global_to_temporadas.temporada_id
		var $precio
		var $precio_real
		if (globals_to_precios.precios_to_precios_detalle_pasajeros == null)
		{
			if (globals.gCantPasajeros > globals_to_precios.precios_to_precios_detalle_mayor.cantidad)
			{
				var $dif = globals.gCantPasajeros - globals_to_precios.precios_to_precios_detalle_mayor.cantidad
				$precio = globals_to_precios.precios_to_precios_detalle_mayor.precio + $dif * globals_to_precios.precio_adulto_adic
			}
			else
			{
				$precio = globals_to_precios.precio_adulto_adic * globals.gCantPasajeros
			}
		}
		else
		{
			$precio = globals_to_precios.precios_to_precios_detalle_pasajeros.precio
		}
		if (globals.gCantMenores > 0)
		{
			$precio += globals_to_precios.precio_menor_adic * globals.gCantMenores
		}
		
		if ($promos.getMaxRowIndex() > 0)
		{
			$precio_real = $precio
			$precio = $precio * (1 - ($descuento / 100))
		}
		else
		{
			var $promoDia = globals.buscarPromocionDiaria(globals.gFecha1, globals.gTarifasCliente, tipo_habitacion_id)
			if ($promoDia.getMaxRowIndex() > 0)
			{
				$precio_real = $precio
				$descuento 	= $promoDia.getValue(1,1)
				$precio 	= $precio * (1 - ($descuento / 100))
			}
			else
			{
				$descuento = 0
			}
		}
		if ($moneda != 2)
		{
			//TARIFA EN MONEDA LOCAL
			var $dls 	= $precio / globals.gCotizacion
			fTotalReal += $precio
			if (globals.gMoneda != $moneda)
			{
				//MUESTRO DOLARES
				$precio = $dls
			}
		}
		else
		{
			//TARIFA EN DOLARES
			var $dls 	= $precio
			$precio 	= $precio * globals.gCotizacion
			fTotalReal += $dls
			if (globals.gMoneda == $moneda)
			{
				//MUESTRO DOLARES
				$precio = $dls
			}
		}
		
		$precios.addRow([globals.gFecha1, $precio, ($descuento/100)*(-1), $precio_real])
		fTotal += $precio
		globals.gFecha1 = new Date(globals.gFecha1.getFullYear(), globals.gFecha1.getMonth(),globals.gFecha1.getDate()+1,0,0,0,0)
	}
	return $precios
}

/**
 * @param {JSDataSet} $precios
 *
 * @properties={typeid:24,uuid:"BC83E7B2-8AD7-4A84-81AE-B4FBF72FFFD9"}
 */
function dibujarPrecios($precios)
{
	elements.tab_precios.removeAllTabs()
	history.removeForm('reserva_3_precios')
	solutionModel.removeForm('reserva_3_precios')
	var $frm = solutionModel.newForm('reserva_3_precios',null,'hoteleria_'+gcadena_to_cadenas.estilo,false,800,65)
	$frm.navigator = SM_DEFAULTS.NONE
	$frm.styleClass = 'blanco'
	var $head = $frm.newHeaderPart(30)
	$head.styleClass = 'gris'
	for (var i = 1 ; i <= $precios.getMaxRowIndex() ; i++)
	{
		var $lbl = $frm.newLabel(utils.dateFormat($precios.getValue(i,1),'dd-MM-yy'), (80*(i-1)),5,80,20)
		$lbl.horizontalAlignment = SM_ALIGNMENT.CENTER
		$lbl.transparent = true
		$lbl.styleClass	= 'negrita_gris'
		var $rayita = $frm.newLabel('', $lbl.x + $lbl.width,0,1,30)
		$rayita.styleClass = 'fondoGrisOscuro'
		
		var $lbl2 = $frm.newLabel(utils.numberFormat($precios.getValue(i,2),'###,##0.00'), (80*(i-1)),30,80,35)
		$lbl2.horizontalAlignment = SM_ALIGNMENT.CENTER
		$lbl2.transparent = true
		$lbl2.styleClass = 'azulGrande'
		$lbl2.verticalAlignment = SM_ALIGNMENT.BOTTOM
		var $rayita = $frm.newLabel('', $lbl.x + $lbl.width,30,1,35)
		$rayita.styleClass = 'fondoGrisOscuro'			
		
		if ($precios.getValue(i,3) != 0)
		{
			var $lbl3 = $frm.newLabel(utils.numberFormat($precios.getValue(i,3),'##%'), (80*(i-1))+50,30,30,15)
			$lbl3.horizontalAlignment = SM_ALIGNMENT.CENTER
			$lbl3.styleClass = 'buttonAmarillo'
			$lbl3.transparent = false
			$lbl3.verticalAlignment = SM_ALIGNMENT.CENTER
			
			var $lbl4 = $frm.newLabel(utils.numberFormat($precios.getValue(i,4),'###,##0.00'), (80*(i-1))+2,30,45,15)
			$lbl4.horizontalAlignment = SM_ALIGNMENT.CENTER
			$lbl4.styleClass = 'letrachica_disabled'
			$lbl4.transparent = false
			$lbl4.verticalAlignment = SM_ALIGNMENT.CENTER
			
			var $rayita = $frm.newLabel('', (80*(i-1))+10,38,30,1)
			$rayita.styleClass = 'raya_disabled'
			$rayita.formIndex = 10
		}
	}
	var $rayita = $frm.newLabel('', 0,0,1,30)
	$rayita.styleClass = 'fondoGrisOscuro'
	var $rayita = $frm.newLabel('', 0,30,1,35)
	$rayita.styleClass = 'fondoGrisOscuro'
	var $rayita = $frm.newLabel('', 0,64,(80*(i-1)),1)
	$rayita.styleClass = 'fondoGrisOscuro'
	var $rayita = $frm.newLabel('', 0,0,(80*(i-1)),1)
	$rayita.styleClass = 'fondoGrisOscuro'
		
	forms[$frm.name].controller.recreateUI()
	elements.tab_precios.addTab($frm.name)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"B965E55C-96CF-45DF-802C-05F4EBF443FC"}
 */
function volver(event) {
	globals.show('reserva_2')
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"2936E834-A5F4-4996-B56C-98657A3F861C"}
 */
function reservar(event) {
	if (reserva_actual.getSize() == 0)
	{
		reserva_actual.newRecord()
		reserva_actual.origen = 'H'
	}
	var $tab = forms.reserva_2.elements.tab_resultados.tabIndex
	var $dtl = reserva_actual.reservas_to_reserva_detalle
	var $existe = 0
	for (var i = 1 ; i <= reserva_actual.reservas_to_reserva_detalle.getSize() ; i++)
	{
		reserva_actual.reservas_to_reserva_detalle.setSelectedIndex(i)
		if ($dtl.tab == $tab)
		{
			$existe = 1
			break
		}
	}
	if ($existe == 0)
		$dtl.newRecord()
	$dtl.fecha_in			= globals.gFechaDesde
	$dtl.fecha_out			= globals.gFechaHasta
	$dtl.precio				= fTotalReal
	$dtl.cant_adultos		= globals.gCantPasajeros
	$dtl.cant_menores		= globals.gCantMenores
	$dtl.tipo_habitacion_id	= tipo_habitacion_id
	$dtl.tarifa_id			= globals.gTarifaId
	//CALC NO STORED PARA ANULAR LA HABITACION Y VOLVER A HABILITAR EL TAB
	$dtl.tab				= $tab
	
	globals.gHabFaltantes--
	forms.reserva_2.elements.tab_resultados.setTabEnabledAt(forms.reserva_2.elements.tab_resultados.tabIndex,false)
	if (globals.gHabFaltantes > 0)
	{
		buscarTab()
		globals.show('reserva_2')
	}
	else
	{
		globals.show('reserva_4')
	}
}

/**
 * @properties={typeid:24,uuid:"DDDAEA48-94C7-4F6C-9138-4CA40F5A21BD"}
 */
function buscarTab()
{
	var $cant = forms.reserva_2.elements.tab_resultados.getMaxTabIndex()
	var i = 1
	while (i <= $cant && forms.reserva_2.elements.tab_resultados.isTabEnabledAt(i) == false)
	{
		i++
	}
	forms.reserva_2.elements.tab_resultados.tabIndex = i
}
